\begin{algorithm}
\caption{baja por las ramas segun una cadena s, ademas va armando la palabra que se forma durante el recorrido }
\begin{algorithmic}[1]
\PARAMS{una cadena s y otra cadena, cadenaArmada que se va a modificar}
\PARAMS{Tambien un apuntador a nodo que va a puntar al nodo donde terminamos}
\PARAMS{ y otro puntero a eje que va a quedar apuntando al ultimo eje}
\STATE cadenaArmada \textcolor{orange}{$\leftarrow$}  `` ''
\STATE ejeAnterior \textcolor{orange}{$\leftarrow$}  \textcolor{orange}{$\bot$}
\STATE ejeActual\textcolor{orange}{$\leftarrow$}  \textcolor{orange}{$\bot$}
\STATE nodoActual \textcolor{orange}{$\leftarrow$} raiz
\STATE eje \textcolor{orange}{$\leftarrow$} eje de nodo actual que comienza con la primer letra de s
\STATE puedoBajar \textcolor{orange}{$\leftarrow$} (existe dicho eje);
\WHILE{ exista el eje \textcolor{orange}{$\wedge$} puedoBajar }
	\STATE guardamos en eje anterior el ejeActual
	\STATE guardamos en ejeActual el eje que estamos mirando ahora 
	\STATE nodoActual \textcolor{orange}{$\leftarrow$} nodo apuntado por el eje
	\STATE concatenar( palabraArmada, cadena del eje)
	\STATE sacar a s la parte del eje que le es prefijo
	\STATE puedoBajar \textcolor{orange}{$\leftarrow$} el eje entero era prefijo de s
	\STATE eje \textcolor{orange}{$\leftarrow$} eje del nodo actual que empieza con la primer letra de s
\ENDWHILE
\RETURN ejeAnterior
\label{alg:bajar}
\end{algorithmic}
\end{algorithm}	

\begin{algorithm}
\caption{agrega una palabra s al conjunto}
\begin{algorithmic}[1]
\PARAMS{ la palabra s a agregar}
\STATE bajar por las ramas hasta no encontrar mas prefijo en el trie
\STATE palabraArmada \textcolor{orange}{$\leftarrow$} palabra armada durante el recorrido
\STATE acutal \textcolor{orange}{$\leftarrow$} nodo hasta donde baje
\STATE ejeActual \textcolor{orange}{$\leftarrow$} eje que apunta al nodo actual
\IF{ la palabra ya esta definida}
	\STATE no hacer nada
\ELSE
	\STATE elminar prefijos comunes de s y de palabraArmada
\IF{palabrArmada \textcolor{orange}{$\neq$} `` ''} %\COMMENT{}
		\STATE \COMMENT{hay que partir un nodo} 
		\STATE existia \textcolor{orange}{$\leftarrow$} nodoActual.existe
		\STATE cadena del eje acutal \textcolor{orange}{$\leftarrow$} cadena del eje actual \textcolor{orange}{-} palabraArmada  \COMMENT{dejar en el eje actual la parte que concidia con s}
		\STATE padreActual \textcolor{orange}{$\leftarrow$} nuevoNodo 
		\STATE crear eje (j) entre padreActual y nodoActual
		\STATE cadena de j \textcolor{orange}{$\leftarrow$} palabraArmada
		\STATE apuntar ejeActual a nuevoPadre 
		\IF{existia}
			\STATE poner que existe el nodoActual
		\ELSE
			\STATE poner que no existe el nodoActual
		\ENDIF
\ENDIF
\ENDIF
	\IF{ si s \textcolor{orange}{$\neq$} `` ''}
		\STATE agregar un eje con s al nodo actual
		\STATE poner un nodo al final de ese eje, con el existe en \textcolor{NavyBlue}{Verdadero}
	\ELSE
		\STATE setear el existe del nodo actual en \textcolor{NavyBlue}{Verdadero}
	\ENDIF
\STATE una palabra mas definida
\end{algorithmic}
\end{algorithm}

\begin{algorithm}
\caption{determina si una palabras esta en el conjunto}
\begin{algorithmic}[1]
\PARAMS{ la palabra s a buscar}
		\STATE nodoActual \textcolor{orange}{$\leftarrow$} raiz
		\WHILE{no termine de recorrer s, y no llegue a una hoja}
			\STATE ejeActual \textcolor{orange}{$\leftarrow$}	eje del nodo actual que empieza con la letra de s que estoy mirando
			\IF{no existe ese eje}
				\RETURN \textcolor{WildStrawberry}{Falso}
				\ENDIF
			\WHILE{no terminamos de ver toda s \textcolor{orange}{$\wedge$} no termine de ver toda la cadena del eje}
			\IF{difieren en un caracter}
				\RETURN \textcolor{WildStrawberry}{Falso}
				\ENDIF
				\STATE mirar el proximo caracter de s y de la cadena del eje	
		\ENDWHILE
		\IF{terminamos de ver s pero me quedaron letras en el eje}
		\STATE\COMMENT{quiere decir que s muere en la mitad de un eje}
		\RETURN \textcolor{WildStrawberry}{Falso}
		\ENDIF
		\STATE nodoActual \textcolor{orange}{$\leftarrow$} nodo apuntado por el eje actual
		\ENDWHILE
		 \RETURN miramos toda s \textcolor{orange}{$\wedge$} el nodo donde quedamos	parados existe	
\end{algorithmic}
\end{algorithm}		





